package service;

import dao.UserDao;
import entity.Users;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.servlet.http.HttpSession;



import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Service
public class UserServiceImpl implements UserService{
    @Autowired
    UserDao ud;

    //根据用户id物理删除或者恢复一个用户,修改删除状态
    @Override
    public int updateDelstatus(Integer userid,Integer number) {
        int i=0;
        if(number==2){ //number：1是物理删除操作传入要物理删除的userid
            i=  ud.updateDelstatus(2,userid);
        }else if(number==1){//number：2是恢复操作传入要恢复的userid
            i=  ud.updateDelstatus(1,userid);
        }else if(number==3){//umber：3是永久删除操作传入要永久删除的userid
            i= ud.removeUser(userid);
        }
        return i;
    }



    //登陆
    @Override
    public Map login(Users user, HttpSession session) {
         Users u=ud.login(user);
         int status=0;//存储状态
         if(u==null){//用户名不存在
             status= -1;
         }else {
             //System.out.print(u.getPassword()+"asdasd");
             if (!user.getPassword().equals(u.getPassword())) {//密码错误
                 status = 0;
                 u=null;
             } else {
                 //用户名和密码正确
                 //把user存入session
                 session.setAttribute("user", u);
                 status = 1;
             }
         }

        //保存实体和状态给前端
        Map m=new HashMap();
        m.put("status",status);
        m.put("user",u);
        return m;
    }

    //添加用户
    @Override
    public int addUpdateUser(Users user) {
        int i=0;
        System.out.print("dfgd");
        System.out.print(user.getUserid()+"id");
       if(user.getUserid()!=null){//修改
            i= ud.updateUser(user);
       }else {//新增
           System.out.print("新增");
            i=ud.newUser(user);
           System.out.print("i"+i);
       }
        System.out.print("完了");
       return i;

    }

    @Override
    public Users findUserOne(Integer userid) {
        return ud.findUserOne(userid);
    }

    //分页查询用户列表
    @Override
    public Map findUser(Integer state,String username,Integer page, Integer count) {
        //查询用户列表
        List users=ud.findUser(state,username,(page-1)*count,count);
        //查询用户数量
        Integer total=ud.findUsers(state,username);
        //返回数据
        Map m=new HashMap();
        m.put("users",users);
        m.put("total",total);
        return  m;
    }
}
